package cliente;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.util.ArrayList;
import java.util.StringTokenizer;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import servidor.VentanaServidor;
import servidor.PanelUsuarios.ModeloTabla;
import clasesBasicas.Usuario;

import javax.swing.JLabel;
import javax.swing.SwingConstants;

public class VentanaMostrarbusqueda extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTable tableVariable;
	private JTable tablePlaca;
	private ModeloTabla dtmVariable;
	private ModeloTabla dtmPlaca;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					VentanaMostrarbusqueda frame = new VentanaMostrarbusqueda(null, null, "");
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public VentanaMostrarbusqueda(ArrayList<String>l1, ArrayList<String>l2, String eleccion) {
	
		setBounds(100, 100, 850, 600);
		
		
	    getContentPane().setLayout(null);
		
		JScrollPane scrollPaneListaVariable = new JScrollPane();
		scrollPaneListaVariable.setBounds(10, 40, 400, 520);
		getContentPane().add(scrollPaneListaVariable);
		
		
		JScrollPane scrollPaneListaPlaca = new JScrollPane();
		scrollPaneListaPlaca.setBounds(430, 38, 400, 520);
		getContentPane().add(scrollPaneListaPlaca);
	
		
		String[][] datos = null;
		 
		//Aqui hay que cargar datos BD
		if(l1.size()!= 0){
			datos = new String[l1.size()][5];
		}
		else{
			datos = new String[0][5];
		}
		
		if(l1!=null && (eleccion.equals("Estado") || eleccion.equals("Todas") || eleccion.equals("Variables")))
		{
			for (int i = 0; i < l1.size(); i++) 
			{
				String cortado=l1.get(i).substring(8);
				System.out.println(cortado);
				StringTokenizer tokenb=new StringTokenizer(cortado);
				String id_placa=tokenb.nextToken(";");
				System.out.println(id_placa);
				String id_variable=tokenb.nextToken(";");
				System.out.println(id_variable);
				id_variable=id_variable.substring(1, id_variable.length());
				System.out.println(id_variable);
				String funcion=tokenb.nextToken(";");
				funcion=funcion.substring(1);
				System.out.println(funcion);
				String estado=tokenb.nextToken(";");
				estado=estado.substring(1);
				System.out.println(estado);
				String accion=tokenb.nextToken(";");
				accion=accion.substring(1);
				System.out.println(accion);


				//inserto los datos
				datos[i][0] = id_placa;
				datos[i][1] = id_variable;
				datos[i][2] = funcion;
				datos[i][3] = estado;
				datos[i][4] = accion;

			}
		}
		
		//Tabla de variable
		String[] columnas = {"ID_Placa", "ID_Variable", "Funcion", "Estado","Ultima Accion"};
		
		tableVariable = new JTable();
		tableVariable.setGridColor(new Color(0, 0, 0));
		tableVariable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
		tableVariable.setPreferredSize(new Dimension(400,800));
		tableVariable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		tableVariable.setFont(new Font("Tahoma", Font.ROMAN_BASELINE, 16));
		scrollPaneListaVariable.setViewportView(tableVariable);
		
		dtmVariable = new ModeloTabla(datos, columnas);
		tableVariable.setModel(dtmVariable);
		
		//Tabla de placas
		String[][] datosPlacas = null;
		//Aqui hay que cargar datos BD
//		if(aU.size()!= 0){
//			datos = new String[aU.size()][5];
//		}
//		else{
//			datos = new String[0][5];
//		}
		String[] columnasPlacas = {"ID Placa", "Nombre", "Descripcion", "Estado"};
		
		tablePlaca = new JTable();
		tablePlaca.setGridColor(new Color(0, 0, 0));
		tablePlaca.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
		tablePlaca.setPreferredSize(new Dimension(400,800));
		tablePlaca.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		tablePlaca.setFont(new Font("Tahoma", Font.ROMAN_BASELINE, 16));
		scrollPaneListaPlaca.setViewportView(tablePlaca);
		
		if(l2.size()!= 0){
			datosPlacas = new String[l2.size()][5];
		}
		else{
			datosPlacas = new String[0][5];
		}
		
		if(l2!=null && (eleccion.equals("Estado") || eleccion.equals("Todas") || eleccion.equals("Placa")))
		{
			for (int i = 0; i < l2.size(); i++) 
			{
				String cortado=l2.get(i).substring(8);
				System.out.println(cortado);
				StringTokenizer tokenb=new StringTokenizer(cortado);
				String id_placa=tokenb.nextToken(";");
				System.out.println(id_placa);
				String id_variable=tokenb.nextToken(";");
				System.out.println(id_variable);
				id_variable=id_variable.substring(1, id_variable.length());
				System.out.println(id_variable);
				String descripcion=tokenb.nextToken(";");
				descripcion=descripcion.substring(1);
				System.out.println(descripcion);
				String estado=tokenb.nextToken(";");
				estado=estado.substring(1);
				System.out.println(estado);


				//inserto los datos
				datosPlacas[i][0] = id_placa;
				datosPlacas[i][1] = id_variable;
				datosPlacas[i][3] = estado;
				datosPlacas[i][2] = descripcion;

			}
		}
		
		dtmPlaca = new ModeloTabla(datosPlacas, columnasPlacas);
		tablePlaca.setModel(dtmPlaca);
		
		//Hasta que no tenga datos da error
//		DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
//		tcr.setHorizontalAlignment(SwingConstants.CENTER); 
//				
//		dtmPlaca = new ModeloTabla(datosPlacas, columnasPlacas);
//		tablePlaca.setModel(dtmPlaca);
//		for(int i = 0;i < 5; i ++ ){
//		
//			tablePlaca.getColumnModel().getColumn(i).setCellRenderer(tcr);
//		}
		
		
		
		
		JLabel lblNewLabel = new JLabel("Lista Variables");
		lblNewLabel.setForeground(Color.BLUE);
		lblNewLabel.setFont(new Font("Times New Roman", Font.BOLD, 14));
		lblNewLabel.setBounds(150, 10, 150, 30);
		getContentPane().add(lblNewLabel);
		
		JLabel lblNewLabel_1 = new JLabel("Lista Placas");
		lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel_1.setFont(new Font("Times New Roman", Font.BOLD, 14));
		lblNewLabel_1.setForeground(Color.BLUE);
		lblNewLabel_1.setBounds(550, 11, 150, 30);
		getContentPane().add(lblNewLabel_1);
		
		
		
		
		setLocationRelativeTo(null);
		setVisible(true);
		setResizable(false);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
	}
	
	public class ModeloTabla extends DefaultTableModel{


		public ModeloTabla() {
			super();
			// TODO Auto-generated constructor stub
		}

		public ModeloTabla(Object[][] data, Object[] columnNames) {
			super(data, columnNames);
			// TODO Auto-generated constructor stub
		}

		private static final long serialVersionUID = 1L;

		public boolean isCellEditable(int fila,int columna){
			if(columna >= 0)
				return false;
			return true;
		}

	}
}
